# 7.5 CacheKit

CacheKit是缓存操作工具类,以下是示例代码:

public void list() {
    List<Blog> blogList = CacheKit.get("blog", "blogList");
    if (blogList == null) {
       blogList = Blog.dao.find("select * from blog");
       CacheKit.put("blog", "blogList", blogList);
    }
    setAttr("blogList", blogList);
    render("blog.html");
}
1
2
3
4
5
6
7
8
9

CacheKit 中最重要的两个方法是get(String cacheName, Object key)与put(String cacheName, Object key, Object value)。get方法是从cache中取数据,put方法是将数据放入cache。参数cacheName与ehcache.xml中的<cache name="blog" …>name属性值对应;参数key是指取值用到的key;参数value是被缓存的数据。

以下代码是CacheKit中重载的CacheKit.get(String, String, IDataLoader)方法使用示例:

public void list() {
    List<Blog> blogList = CacheKit.get("blog", "blogList", new IDataLoader(){
       public Object load() {
           return Blog.dao.find("select * from blog");
    }});
    setAttr("blogList", blogList);
    render("blog.html");
}
1
2
3
4
5
6
7
8

CacheKit.get方法提供了一个IDataLoader接口,该接口中的load()方法在缓存值不存在时才会被调用。该方法的具体操作流程是:首先以cacheName=blog以及key=blogList为参数去缓存取数据,如果缓存中数据存在就直接返回该数据,不存在则调用IDataLoader.load()方法来获取数据。

Last Updated: 9/14/2023, 8:36:35 AM